package com.cloud.order.Feign;

import model.bean.Product;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author 韩先楚
 */
@FeignClient(value = "service-product",fallback = OrderCallBackOpenfeign.class)  //feign客户端
//如果调用服务为第三方api,则需要配置url
public interface ProductFeignClient {

    /**
     * 获取商品数据从商品模块
     */
    /**
     *    openfeign是发送请求,原理是使用动态代理,动态类使用反射获取注解等信息.然后发送请求
     *    参数必须需要带注解来解释这个参数是要放在哪里,
     *    如@PathVariable("id") Long id 表示这个参数是作为路径参数来发送给别的微服务的
     *    @RequestHeader("token") String token 表示这个参数是作为请求头参数来发送给别的微服务的
     *
     */
    @GetMapping("/product/{id}")
    public Product getProduct01(@PathVariable("id") Long id);




}
